package com.internetCafes.spms.web.tenant.service.impl;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.internetCafes.spms.web.tenant.dao.TenantDeptInfoPlusMapper;
import com.internetCafes.spms.web.tenant.model.TenantDeptInfoPlus;
import com.internetCafes.spms.web.tenant.model.podo.TenantDeptInfoPlusDo;
import com.internetCafes.spms.web.tenant.model.podo.TenantDeptInfoPlusPo;
import com.internetCafes.spms.web.tenant.service.ITenantDeptInfoPlusService;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

/**
 * 企业部门信息Service层
 * @author Zj 2021/12/8 15:20
 */
@Service
public class TenantDeptInfoPlusServiceImpl extends ServiceImpl<TenantDeptInfoPlusMapper, TenantDeptInfoPlus> implements ITenantDeptInfoPlusService {

    @Override
    public Map<Long, Integer> countDeptMemberAmountByTenantId(Long tenantId) {
        return baseMapper.countDeptMemberAmountByTenantId(tenantId)
                .stream().collect(Collectors.toMap(TenantDeptInfoPlusPo::getId, TenantDeptInfoPlusPo::getMemberAmount));
    }

    @Override
    public List<TenantDeptInfoPlusPo> listPoNoTenantId(TenantDeptInfoPlusDo deptInfoPlusDo) {
        return baseMapper.listPoNoTenantId(deptInfoPlusDo);
    }

    @Override
    public List<TenantDeptInfoPlusPo> parentDeptListByEmployeeUserId(Long employeeUserId) {
        TenantDeptInfoPlusDo deptInfoPlusDo = new TenantDeptInfoPlusDo().setChildEmployeeUserId(employeeUserId);
        List<TenantDeptInfoPlusPo> tenantDeptInfoPlusPos = baseMapper.deptList(deptInfoPlusDo);
        TenantDeptInfoPlusPo rootDeptPo = new TenantDeptInfoPlusPo();
        rootDeptPo.setId(0L);
        tenantDeptInfoPlusPos.add(rootDeptPo);
        return tenantDeptInfoPlusPos;
    }

    @Override
    public List<TenantDeptInfoPlusPo> deptList(TenantDeptInfoPlusDo deptInfoPlusDo) {
        return baseMapper.deptList(deptInfoPlusDo);
    }
}
